package pl.koziolekweb.szkola.AVTablice;

// AV-Tablice/Grupa.java
 
public class Grupa {
    String[]   stud;
    String[] przedm;
    int[][][] oceny;

    public Grupa(String[] s, String[] p, int[][][] oc) {
        stud   =  s;
        przedm =  p;
        oceny  = oc;
    }

    int getIluStudentow() {
        return stud.length;
    }

    String getStudent(int s) {
        return stud[s];
    }

    String getPrzedmiot(int p) {
        return przedm[p];
    }

    // funkcja zwraca liczbe studentow grupy
    // bez ani jednej oceny ponizej trzech
    int ileBez2() {
        int licz = 0;
        LOOP:
        for (int s = 0; s < oceny.length; ++s) {
            for (int p = 0; p < oceny[s].length; ++p)
                for (int o = 0; o < oceny[s][p].length; ++o)
                    if (oceny[s][p][o] < 3) continue LOOP;
            ++licz;
        }
        return licz;
    }

    // funkcja zwraca tablice srednich z ocen
    // wszystkich studentow z wybranego przedmiotu
    // (zakladamy, ze kazdy student ma choc jedna
    // ocene z kazdego przedmiotu!)
    double[] srednieZPrzedmiotu(int p) {

        double[] srednie = new double[stud.length];

        for (int s = 0; s < stud.length; ++s) {
            double srednia = 0;
            for (int o = 0; o < oceny[s][p].length; ++o)
                srednia += oceny[s][p][o];
            srednie[s] = srednia/oceny[s][p].length;
        }
        return srednie;
    }

    // funkcja zwraca tablice nazwisk studentow, ktorzy
    // maja srednia ze wszystkich ocen powyzej czterech
    String[] doNagrody() {
        String[] pom = new String[stud.length];
        int licz = 0;

        // po studentach
        for (int s = 0; s < stud.length; ++s) {
            double srednia = 0;
            int    ileocen = 0;
            // po przedmiotach dla studenta s
            for (int p = 0; p < oceny[s].length; ++p) {
                ileocen += oceny[s][p].length;
                // po ocenach studenta s z przedmiotu p
                for (int o = 0; o < oceny[s][p].length; ++o)
                    srednia += oceny[s][p][o];
            }
            srednia /= ileocen;
            if (srednia > 4) pom[licz++] = stud[s];
        }

        String[] wynik = new String[licz];
        for (int i = 0; i < licz; ++i)
            wynik[i] = pom[i];
        return wynik;
    }
}
